package LineCode.Recruit2017.网易;

import java.util.Scanner;

/**
 * 定义函数f(x)为x最大的奇数约数，x为正整数。 例如:f(44) = 11.
 现在给出一个N，需要求出 f(1) + f(2) + f(3).......f(N)
 例如： N = 7
 * f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) =
 * 1 + 1 + 3 + 1 + 5 + 3 + 7 = 21
 *
 输入描述:
    输入一个整数N (1 ≤ N ≤ 1000000000)

 输出描述:
     输出一个整数，即为f(1) + f(2) + f(3).......f(N)
 */
public class 最大的奇约数 {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            Long n = sc.nextLong();
            Long sum = 0l;
            for (long i = n; i > 0; i /= 2) {
                long flag = (i + 1) / 2;
                sum += flag * flag;
            }
            System.out.println(sum);
        }
    }

}
